package co.yixiang.modules.shop.service;

import co.yixiang.common.service.BaseService;
import co.yixiang.modules.shop.domain.YxMaterial;
import co.yixiang.modules.shop.service.dto.YsMaterialDTO;
import co.yixiang.modules.shop.service.dto.YxMaterialQueryCriteria;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Map;

public interface YxMaterialService  extends BaseService<YxMaterial>{

/**
    * 查询数据分页
    * @param criteria 条件
    * @param pageable 分页参数
    * @return Map<String,Object>
    */
    Map<String,Object> queryAll(YxMaterialQueryCriteria criteria, Pageable pageable);

    /**
    * 查询所有数据不分页
    * @param criteria 条件参数
    * @return List<YxMaterialDto>
    */
    List<YxMaterial> queryAll(YxMaterialQueryCriteria criteria);


    /**
     * 根据材料ID获取材料详情
     * 此方法用于查询特定ID的材料信息，返回一个包含该材料详细信息的DTO对象
     * 如果查询不到相关信息，此方法将返回null
     *
     * @param id 材料的唯一标识符
     * @return YsMaterialDTO 返回一个包含材料详细信息的DTO对象，如果没有找到则返回null
     */
    YsMaterialDTO getDTOById(String id);

    /**
     * 查询数据分页
     * @param page 页码
     * @param limit 每页数量
     * @return List<YxMaterial> 分页后的物料列表
     */
    List<YsMaterialDTO> getList(String type, String groupId, int page, int limit);

}
